package com.baohua.dao.impl;

import java.util.List;

import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

import com.baohua.dao.BaseDao;
import com.baohua.dao.RoleDao;
import com.baohua.model.Menu;
import com.baohua.model.Role;

/**
 * RoleDao的实现类
 * @author czp
 *
 */
@Repository("roleDao")
public class RoleDaoImpl extends BaseDao implements RoleDao {

	/**
	 * 根据SQL语句进行查询列表
	 * @param sql SQL语句
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public List<Role> queryRole(String sql) {
		List<Role> list = this.getSession().createQuery(sql).list();
		return list;
	}

	/**
	 * 增加角色
	 * @param role 角色对象
	 */
	@Override
	public void addRole(Role role) {
		this.getHibernateTemplate().save(role);
	}
	
	/**
	 * 修改角色
	 * @param role 角色对象
	 */
	@Override
	public void updateRole(Role role) {
		this.getHibernateTemplate().update(role);
	}
	
	/**
	 * 删除角色
	 * @param role 角色对象
	 */
	@Override
	public void delRole(Role role) {
		this.getHibernateTemplate().delete(role);
	}

	/**
	 * 根据roleId查询角色
	 * @param roleId 角色ID
	 * @return
	 */
	@Override
	public Role queryRoleById(int roleId) {
		return (Role)this.getHibernateTemplate().load(Role.class, roleId);
	}

	/**
	 * 根据roleName查询角色
	 * @param roleName 角色名称
	 * @return
	 */
	@Override
	public Role queryRoleByRoleName(String roleName) {
		Role role = (Role)this.getSession().createQuery("from Role where roleName = ?")
				   .setString(0, roleName).uniqueResult();
		return role;
	}

}
